package interviewQuestions;

import java.util.Stack;

/**
 * 剑指offer第9题
 * 双栈实现一个队列
 * */
public class CQueue {
    // 定义两个栈
    Stack<Integer> stack1 = new Stack<>();
    Stack<Integer> stack2 = new Stack<>();
    public CQueue() {

    }

    public void appendTail(int value) {
        // 添加元素 就加入到栈1
        stack1.add(value);
    }

    public int deleteHead() {
        // 判断栈2是否为空，为空的话将栈1的元素全部压入到栈2
        if(stack2.isEmpty()){
            while (!stack1.isEmpty()){
                stack2.add(stack1.pop());
            }
        }else{
            return stack2.pop();
        }
        if(stack2.isEmpty()){ // 如果stack2还是为空那么就返回-1 说明两个栈此时都为空
            return -1;
        }
        return stack2.pop();
    }

    // main
    public static void main(String[] args) {
        CQueue cQueue = new CQueue();
        cQueue.appendTail(1);
        cQueue.appendTail(2);
        cQueue.appendTail(3);
        cQueue.appendTail(4);
        cQueue.appendTail(5);
        cQueue.appendTail(6);
        System.out.println(cQueue.deleteHead());
        System.out.println(cQueue.deleteHead());
        System.out.println(cQueue.deleteHead());
        System.out.println(cQueue.deleteHead());
        System.out.println(cQueue.deleteHead());
        System.out.println(cQueue.deleteHead());
    }
}
